<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/realmode.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/realmode.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X0FSQ0hfWDg2X1JFQUxNT0RFX0hfMA__"><span class="b">_ARCH_X86_REALMODE_H</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0FSQ0hfWDg2X1JFQUxNT0RFX0hfMA__"><span class="b">_ARCH_X86_REALMODE_H</span></a>
<a name="3" /><span class="True">       3:</span> 
<a name="4" /><span class="True">       4:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="5" /><span class="True">       5:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">io</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="6" /><span class="True">       6:</span> 
<a name="7" /><span class="True">       7:</span> <span class="k">/* This must match data at realmode.S */</span>
<a name="8" /><span class="True">       8:</span> <span class="m">struct</span> <span class="b">real_mode_header</span> <span class="f">{</span>
<a name="9" /><span class="True">       9:</span>     <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a>    <span class="b">text_start</span><span class="f">;</span>
<a name="10" /><span class="True">      10:</span>     <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a>    <span class="b">ro_end</span><span class="f">;</span>
<a name="11" /><span class="True">      11:</span>     <span class="k">/* SMP trampoline */</span>
<a name="12" /><span class="True">      12:</span>     <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a>    <span class="b">trampoline_start</span><span class="f">;</span>
<a name="13" /><span class="True">      13:</span>     <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a>    <span class="b">trampoline_status</span><span class="f">;</span>
<a name="14" /><span class="True">      14:</span>     <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a>    <span class="b">trampoline_header</span><span class="f">;</span>
<a name="15" /><span class="True">      15:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1g4Nl82NF8w"><span class="b">CONFIG_X86_64</span></a>
<a name="16" /><span class="True">      16:</span>     <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a>    <span class="b">trampoline_pgd</span><span class="f">;</span>
<a name="17" /><span class="True">      17:</span> <span class="f">#</span><span class="n">endif</span>
<a name="18" /><span class="True">      18:</span>     <span class="k">/* ACPI S3 wakeup */</span>
<a name="19" /><span class="True">      19:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX0FDUElfU0xFRVBfMA__"><span class="b">CONFIG_ACPI_SLEEP</span></a>
<a name="20" /><span class="True">      20:</span>     <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a>    <span class="b">wakeup_start</span><span class="f">;</span>
<a name="21" /><span class="True">      21:</span>     <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a>    <span class="b">wakeup_header</span><span class="f">;</span>
<a name="22" /><span class="True">      22:</span> <span class="f">#</span><span class="n">endif</span>
<a name="23" /><span class="True">      23:</span>     <span class="k">/* APM/BIOS reboot */</span>
<a name="24" /><span class="True">      24:</span>     <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a>    <span class="b">machine_real_restart_asm</span><span class="f">;</span>
<a name="25" /><span class="True">      25:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1g4Nl82NF8w"><span class="b">CONFIG_X86_64</span></a>
<a name="26" /><span class="True">      26:</span>     <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a>    <span class="b">machine_real_restart_seg</span><span class="f">;</span>
<a name="27" /><span class="True">      27:</span> <span class="f">#</span><span class="n">endif</span>
<a name="28" /><span class="True">      28:</span> <span class="f">}</span><span class="f">;</span>
<a name="29" /><span class="True">      29:</span> 
<a name="30" /><span class="True">      30:</span> <span class="k">/* This must match data at trampoline_32/64.S */</span>
<a name="31" /><span class="True">      31:</span> <span class="m">struct</span> <span class="b">trampoline_header</span> <span class="f">{</span>
<a name="32" /><span class="False">      32:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_X86_32</span>
<a name="33" /><span class="False">      33:</span>     <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a> <span class="b">start</span><span class="f">;</span>
<a name="34" /><span class="False">      34:</span>     <span class="b">u16</span> <span class="b">gdt_pad</span><span class="f">;</span>
<a name="35" /><span class="False">      35:</span>     <span class="b">u16</span> <span class="b">gdt_limit</span><span class="f">;</span>
<a name="36" /><span class="False">      36:</span>     <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a> <span class="b">gdt_base</span><span class="f">;</span>
<a name="37" /><span class="True">      37:</span> <span class="f">#</span><span class="n">else</span>
<a name="38" /><span class="True">      38:</span>     <span class="b">u64</span> <span class="b">start</span><span class="f">;</span>
<a name="39" /><span class="True">      39:</span>     <span class="b">u64</span> <span class="b">efer</span><span class="f">;</span>
<a name="40" /><span class="True">      40:</span>     <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a> <span class="b">cr4</span><span class="f">;</span>
<a name="41" /><span class="True">      41:</span> <span class="f">#</span><span class="n">endif</span>
<a name="42" /><span class="True">      42:</span> <span class="f">}</span><span class="f">;</span>
<a name="43" /><span class="True">      43:</span> 
<a name="44" /><span class="True">      44:</span> <span class="m">extern</span> <span class="m">struct</span> <span class="b">real_mode_header</span> <span class="f">*</span><span class="b">real_mode_header</span><span class="f">;</span>
<a name="45" /><span class="True">      45:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">char</span> <span class="b">real_mode_blob_end</span><span class="f">[</span><span class="f">]</span><span class="f">;</span>
<a name="46" /><span class="True">      46:</span> 
<a name="47" /><span class="True">      47:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">init_rsp</span><span class="f">;</span>
<a name="48" /><span class="True">      48:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">initial_code</span><span class="f">;</span>
<a name="49" /><span class="True">      49:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">initial_gs</span><span class="f">;</span>
<a name="50" /><span class="True">      50:</span> 
<a name="51" /><span class="True">      51:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">char</span> <span class="b">real_mode_blob</span><span class="f">[</span><span class="f">]</span><span class="f">;</span>
<a name="52" /><span class="True">      52:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">char</span> <span class="b">real_mode_relocs</span><span class="f">[</span><span class="f">]</span><span class="f">;</span>
<a name="53" /><span class="True">      53:</span> 
<a name="54" /><span class="False">      54:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_X86_32</span>
<a name="55" /><span class="False">      55:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">char</span> <span class="b">startup_32_smp</span><span class="f">[</span><span class="f">]</span><span class="f">;</span>
<a name="56" /><span class="False">      56:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">char</span> <span class="b">boot_gdt</span><span class="f">[</span><span class="f">]</span><span class="f">;</span>
<a name="57" /><span class="True">      57:</span> <span class="f">#</span><span class="n">else</span>
<a name="58" /><span class="True">      58:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">char</span> <span class="b">secondary_startup_64</span><span class="f">[</span><span class="f">]</span><span class="f">;</span>
<a name="59" /><span class="True">      59:</span> <span class="f">#</span><span class="n">endif</span>
<a name="60" /><span class="True">      60:</span> 
<a name="61" /><span class="True">      61:</span> <span class="m">void</span> <span class="b">reserve_real_mode</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="62" /><span class="True">      62:</span> <span class="m">void</span> <span class="b">setup_real_mode</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="63" /><span class="True">      63:</span> 
<a name="64" /><span class="True">      64:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _ARCH_X86_REALMODE_H */</span>
<a name="65" /><span class="True">      65:</span> </pre>
  </body>
</html>
